草庐IT

c++ - std::string 和 UTF-8 编码的 unicode

全部标签

c - Windows 互斥对象和信号量

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭6年前。ImprovethisquestionWindows互斥对象是否可以替换为二进制信号量,或者Windows互斥对象是否具有我错过的某些特定功能?

C++ - 如何获取正在运行的进程的 .exe 路径作为 std::string?

我有一个程序需要将文件放在与已运行的Windows进程相同的目录中。如何将此目录检索为std::string以便我可以在正确的位置写入?我知道这不是什么大问题,但我确实用Google搜索了很多次,但我找不到任何与解决方案类似的东西。编辑:我正在使用Code::Blocks,因此最好是不特定于单个IDE功能的解决方案。 最佳答案 如果您为Windows开发程序,您可以使用GetModuleFilename()API调用,然后从整个路径中删除文件名部分。这是示例:#include"stdafx.h"#include#include#in

c++ - Windows C++ 中的输入编码问题

我正在使用VisualStudio2013开发一个简单的控制台应用程序int_tmain(intargc,_TCHAR*argv[]){std::wstringname;std::wcout>name;std::wcout如果我输入Ángel作为输入,应用程序运行良好,输出为Hello,Ángel问题是如果我把断点放在std::wcoutVisualStudio调试器显示+nameL"µngel"std::basic_string,std::allocator>虽然控制台中的输出在程序的其他部分是正确的,但我调用了win32api函数CopyFileW()并且它总是失败,因为路径有su

在 Linux 上使用 MinGW 为 Windows 编译 Gnu11

我有一个C程序;它使用gcc-std=gnu11iter.c-oiter进行编译和链接,因为我正在使用一些GNUstring.h扩展,例如strndup,strnlen和strsep。我想在UbuntuLinux上使用包i686-w64-mingw32-gcc为Windows编译这个程序。$i686-w64-mingw32-gcc-std=gnu11iter.c-oiter32.exeInfileincludedfromiter.c:1:0:iter.h:Infunction‘str_chomp’:iter.h:166:15:warning:implicitdeclarationoff

c - 在不离开内核空间的情况下实现 "tee"

在Linux中,tee命令将数据从stdin复制到stdout和文件;通过利用tee和splice系统调用,可以在数据永远不会离开内核空间的情况下实现此功能。在Windows上实现tee命令并且数据永远不会离开内核空间需要哪些函数?虽然tee命令有一个简单的实现,包括read、open和write将数据复制到用户空间,我特别感兴趣的是学习如何在数据不离开内核空间的情况下分割文件流。 最佳答案 这个问题的前提是错误的。tee命令不依赖于tee()或splice()系统调用,也不是零拷贝;它基本上实现为:openfileforwriti

c - 从 C 打开/运行另一个程序,然后关闭该程序

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion如何从C执行/打开/运行另一个程序,而不是阻止它,但让它同时运行。然后我想做一些像服务器/客户端这样的测试,然后如果已经完成我只想杀死/关闭这个程序。我读过system()orexecv()但第一个似乎在等待结果,第二个似乎只能在Linux上工作?在最好的情况下,我希望有跨平台或最小的MacOS/Windows/Linux(Ubuntu)工作解决方案。当我不再需要它时,我还需要关闭这个以前打开的程序。

string - 如何将包含特定字符串的行的行号存储在环境变量中的文本文件中?

我目前有这个批处理代码,它告诉我这个字符串在文本文件中出现的次数。@ECHOOFFset/aNumb=0for/f%%iin('FINDSTR/N.*%1')do(set/aNumb+=1)echo%Numb%我需要另一段代码将文本所在的行号输出到一个变量。如何将文本文件中包含特定字符串的行的行号存储在环境变量中? 最佳答案 我的这个任务的批处理代码需要指定文件名和搜索字符串作为参数来运行批处理文件并进行一些错误检查:@echooffsetlocalEnableDelayedExpansionset"FileName=%~1"set

c# - 使用C#创建MS-DOS txt文件使用什么编码(UTF8Encoding vs Encoding)

我正在尝试为遗留系统创建一个平面文件,他们要求数据以MSDOS.txt文件(文本文档-MS-DOS格式CP_OEM)的TextEncoding形式呈现。我对在C#(.net4.0框架)中使用UTF8Encoding类生成的文件感到有点困惑,我认为它在默认txt文件(编码:CP_ACP)中生成一个文件。我认为编码名称CP_ACP、Winodows和ANSI指的是同一事物,Windows默认是ANSI,它将省略任何unicode字符信息。如果我使用C#库中的UTF8Encoding类来创建文本文件(如下所示),它会是MSDOStxt文件格式吗?byte[]title=newUTF8Enco

windows - 将终端区域设置永久设置为 C.UTF8

当我在Git的终端sh.exe中使用locale时(在PhpStormIDE中激活),会出现:$localeLANG=LC_CTYPE="C"LC_NUMERIC="C"LC_TIME="C"LC_COLLATE="C"LC_MONETARY="C"LC_MESSAGES="C"LC_ALL=C而且我不能使用任何字符,例如±、ę等。使用exportLC_ALL=C.UTF8后:$localeLANG=LC_CTYPE="C.UTF8"LC_NUMERIC="C.UTF8"LC_TIME="C.UTF8"LC_COLLATE="C.UTF8"LC_MONETARY="C.UTF8"LC_

c++ - 从 Matlab 运行 exe 代码。在 cmd (dos) 中工作的完全相同的指令在 Matlab 中失败

这让我发疯,我必须承认。在终于能够成功编译我需要处理语音文件的两个函数之后,从我从一个值得信赖的在线存储库下载的C/C++代码(代码已经在Linux中经过彻底测试),我现在正在努力从Matlab启动这些文件...当我在cmd(dos)中键入以下命令时分析b2.wavconfig_default它有效,没问题(参见此处Works)。然后,我将完全相同的命令构建到一个字符串中,并将其提供给“系统”Matlab函数。然后代码崩溃了...(请参阅此处Fails)我已经尝试使用完整路径(c:\b2.wav等)但仍然无法正常工作...关于为什么会发生这种情况有什么想法吗?